This specification relates to query processing in cloud-based distributed systems.
Cloud computing systems can provide database services. In order to provide performance guarantees, some cloud-based systems have significant restrictions on the types of queries that can be submitted as well as restrictions on how the results of a query can be ordered. These restrictions sacrifice consistency for speed, availability, and horizontal scaling.
Three restrictions in such cloud based systems can include: (1) limiting the number of logical expressions in a query, (2) forbidding ordering the query results by attributes of inequality expressions.
For example, cloud-based systems can limit the number of logical expressions in a query to 10, 30, or 100 logical expressions. Any query that has more logical expressions is rejected. In addition, if a query has an inequality expression, e.g., “date>830,” the query is similarly rejected. Finally, if a query specifies that the query results should be ordered by an attribute other than an attribute specified in a logical expression, the system may also reject the query.